package cn.dida.service;

import java.util.List;
import java.util.Map;

import cn.dida.model.ActivityWinning;
import cn.dida.model.Company;
import cn.dida.model.DeliveryInfo;
import cn.dida.model.Pageable;

/**
 * <p>兑奖记录   业务层接口</p>
 * @author lisha
 * @date 2016-11-20 14:27
 * */
public interface ActivityWinningService {

	/**
	 * 根据id获取活动详情
	 * @param winningId 兑奖记录id
	 * @return ActivityWinning 兑奖详情
	 * @date 2016-11-18 17:42
	 * */
	ActivityWinning getWinningById(String winningId);

	/**
	 * 点击发送: 修改获奖列表，修改红包获奖日志表， 修改奖品库存
	 * @param winningId
	 * @param prizeId
	 * @return
	 */
	public Integer sendEnvelope( Integer winningId,  Integer prizeId,Integer source,Integer companyId);

	/**
	 * 获取发送失败的红包数据
	 * @param companyId
	 * @return
	 */
	public List<Map<String,Object>> getSendEvnFalse(Integer companyId,String activityId);

	/**
	 * 	获取公司uuid
	 */
	public String getCompanyApid(Integer companyId);

	/**
	 * 兑奖列表
	 * @param qrcodeNum 二维码编号
	 * @param qrcodeName 二维码名称
	 * @param productName 商品名称
	 * @param prizeName 奖品名称
	 * @param csshMobile 兑奖手机号
	 * @param cashTimeS 兑奖时间
	 * @param cashTimeE 兑奖时间
	 * @param scanTimeS 兑奖时间
	 * @param scanTimeS 兑奖时间
	 * @param page 分页游标
	 * @return Pageable<ActivityWinning> 兑奖管理分页列表
	 * @date 2016-11-14 14:31
	 * */
	Pageable<ActivityWinning> queryWinning(Integer companyId,String qrcodeNum, String qrcodeName,String productName,String prizeName,
										   String csshMobile,String cashTimeS,String cashTimeE,String scanTimeS,String scanTimeE,Integer page,Integer shipMethod,String activityId,Integer redEnvelope);

	/**
	 * 兑奖列表（数据导出用）
	 * @param companyId 公司id
	 * @param qrcodeNum 二维码编号
	 * @param qrcodeName 二维码名称
	 * @param productName 商品名称
	 * @param prizeName 奖品名称
	 * @param mobile 手机号
	 * @param cashTimeS 兑奖时间
	 * @param cashTimeE 兑奖时间
	 * @param scanTimeS 兑奖时间
	 * @param scanTimeS 兑奖时间
	 * @return List<ActivityWinning> 兑奖管理列表
	 * @date 2016-12-07 17:47
	 * */
	List<ActivityWinning> queryWinningForExport(Integer companyId,String qrcodeNum, String qrcodeName,String productName,
												String prizeName,String mobile,String cashTimeS,String cashTimeE,String scanTimeS,String scanTimeE, Integer shipMethod,Integer redEnvelope);

	/**
	 * 根据兑奖记录id获取配送信息
	 * @param winningId 兑奖记录id
	 * @return DeliveryInfo 配送信息
	 * @date 2016-12-01 11:21
	 * */
	DeliveryInfo getDeliveryInfo(String winningId);
	/**
	 * 兑奖列表（活动管理中 【兑奖记录】使用）
	 * @param activityId 活动id
	 * @param qrcodeNum 二维码编号 
	 * @param qrcodeName 二维码名称
	 * @param productName 商品名称
	 * @param prizeName 奖品名称
	 * @param csshMobile 兑奖手机号
	 * @param cashTimeS 兑奖时间
	 * @param cashTimeE 兑奖时间
	 * @param scanTimeS 兑奖时间
	 * @param scanTimeS 兑奖时间
	 * @param page 分页游标
	 * @return Pageable<ActivityWinning> 兑奖管理分页列表
	 * @date 2016-11-14 14:31
	 * */
	Pageable<ActivityWinning> queryWinningList(String activityId,Integer companyId,String qrcodeNum, String qrcodeName,String productName,String prizeName,
											   String csshMobile,String cashTimeS,String cashTimeE,String scanTimeS,String scanTimeE,Integer page,Integer shipMethod);

	/**
	 * 通过messageid获取activity_winid，activity_prizeid
	 * @author kelan
	 * @date 2017年5月9日
	 * @param message_id
	 * @return
	 */
	Map<String, Object> queryMessage_Activity_winning_ID(String message_id);

	/**
	 * 红包发送修改发送记录状态
	 * @author kelan
	 * @date 2017年5月9日
	 * @param messageid
	 * @param issuccess
	 * @param err_code_des
	 * @return
	 */
	Integer calbackupdateActivitywinningsendredlog(String messageid, Integer issuccess, String err_code_des);

	/**
	 * 红包发送成功 修改状态，以及库存量
	 * @author kelan
	 * @date 2017年5月9日
	 * @param actwinid
	 * @param prizeid
	 * @param issuccess
	 * @return
	 */
	Integer updateActWinningCashSta(Integer actwinid, Integer prizeid, Integer issuccess);
}
